Autogenerated HTML docs for 36de72aa9dc3b7daf8cf2770c840f39bb0d2ae70
diff --git a/git-push.html b/git-push.html new file mode 100644 index 0000000..e350c52 --- /dev/null +++ b/git-push.html
@@ -0,0 +1,556 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="generator" content="AsciiDoc 7.0.1" /> +<style type="text/css"> +/* Debug borders */ +p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { +/* + border: 1px solid red; +*/ +} + +body { + margin: 1em 5% 1em 5%; +} + +a { color: blue; } +a:visited { color: fuchsia; } + +em { + font-style: italic; +} + +strong { + font-weight: bold; +} + +tt { + color: navy; +} + +h1, h2, h3, h4, h5, h6 { + color: #527bbd; + font-family: sans-serif; + margin-top: 1.2em; + margin-bottom: 0.5em; + line-height: 1.3; +} + +h1 { + border-bottom: 2px solid silver; +} +h2 { + border-bottom: 2px solid silver; + padding-top: 0.5em; +} + +div.sectionbody { + font-family: serif; + margin-left: 0; +} + +hr { + border: 1px solid silver; +} + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +pre { + padding: 0; + margin: 0; +} + +span#author { + color: #527bbd; + font-family: sans-serif; + font-weight: bold; + font-size: 1.2em; +} +span#email { +} +span#revision { + font-family: sans-serif; +} + +div#footer { + font-family: sans-serif; + font-size: small; + border-top: 2px solid silver; + padding-top: 0.5em; + margin-top: 4.0em; +} +div#footer-text { + float: left; + padding-bottom: 0.5em; +} +div#footer-badges { + float: right; + padding-bottom: 0.5em; +} + +div#preamble, +div.tableblock, div.imageblock, div.exampleblock, div.verseblock, +div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, +div.admonitionblock { + margin-right: 10%; + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.admonitionblock { + margin-top: 2.5em; + margin-bottom: 2.5em; +} + +div.content { /* Block element content. */ + padding: 0; +} + +/* Block element titles. */ +div.title, caption.title { + font-family: sans-serif; + font-weight: bold; + text-align: left; + margin-top: 1.0em; + margin-bottom: 0.5em; +} +div.title + * { + margin-top: 0; +} + +td div.title:first-child { + margin-top: 0.0em; +} +div.content div.title:first-child { + margin-top: 0.0em; +} +div.content + div.title { + margin-top: 0.0em; +} + +div.sidebarblock > div.content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} + +div.listingblock > div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock > div.content { + padding-left: 2.0em; +} +div.quoteblock .attribution { + text-align: right; +} + +div.admonitionblock .icon { + vertical-align: top; + font-size: 1.1em; + font-weight: bold; + text-decoration: underline; + color: #527bbd; + padding-right: 0.5em; +} +div.admonitionblock td.content { + padding-left: 0.5em; + border-left: 2px solid silver; +} + +div.exampleblock > div.content { + border-left: 2px solid silver; + padding: 0.5em; +} + +div.verseblock div.content { + white-space: pre; +} + +div.imageblock div.content { padding-left: 0; } +div.imageblock img { border: 1px solid silver; } +span.image img { border-style: none; } + +dl { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +dt { + margin-top: 0.5em; + margin-bottom: 0; + font-style: italic; +} +dd > *:first-child { + margin-top: 0; +} + +ul, ol { + list-style-position: outside; +} +ol.olist2 { + list-style-type: lower-alpha; +} + +div.tableblock > table { + border-color: #527bbd; + border-width: 3px; +} +thead { + font-family: sans-serif; + font-weight: bold; +} +tfoot { + font-weight: bold; +} + +div.hlist { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +td.hlist1 { + vertical-align: top; + font-style: italic; + padding-right: 0.8em; +} +td.hlist2 { + vertical-align: top; +} + +@media print { + div#footer-badges { display: none; } +} +include::./stylesheets/xhtml11-manpage.css[] +/* Workarounds for IE6's broken and incomplete CSS2. */ + +div.sidebar-content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} +div.sidebar-title, div.image-title { + font-family: sans-serif; + font-weight: bold; + margin-top: 0.0em; + margin-bottom: 0.5em; +} + +div.listingblock div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock-content { + padding-left: 2.0em; +} + +div.exampleblock-content { + border-left: 2px solid silver; + padding-left: 0.5em; +} +</style> +<title>git-push(1)</title> +</head> +<body> +<div id="header"> +<h1> +git-push(1) Manual Page +</h1> +<h2>NAME</h2> +<div class="sectionbody"> +<p>git-push - + Update remote refs along with associated objects. +</p> +</div> +</div> +<h2>SYNOPSIS</h2> +<div class="sectionbody"> +<p><em>git-push</em> [--all] [--force] <repository> <refspec>…</p> +</div> +<h2>DESCRIPTION</h2> +<div class="sectionbody"> +<p>Updates remote refs using local refs, while sending objects +necessary to complete the given refs.</p> +<p>You can make "interesting" things to happen on the repository +every time you push into it, by setting up <em>hooks</em> there. See +documentation for <a href="git-receive-pack.html">git-receive-pack(1)</a>.</p> +</div> +<h2>OPTIONS</h2> +<div class="sectionbody"> +<dl> +<dt> +<repository> +</dt> +<dd> +<p> + The "remote" repository that is the source of a fetch + or pull operation, or the destination of a push operation. + One of the following notations can be used + to name the remote repository: +</p> +<div class="exampleblock"> +<div class="exampleblock-content"> +<ul> +<li> +<p> +rsync://host.xz/path/to/repo.git/ +</p> +</li> +<li> +<p> +http://host.xz/path/to/repo.git/ +</p> +</li> +<li> +<p> +https://host.xz/path/to/repo.git/ +</p> +</li> +<li> +<p> +git://host.xz/path/to/repo.git/ +</p> +</li> +<li> +<p> +git://host.xz/~user/path/to/repo.git/ +</p> +</li> +<li> +<p> +ssh://host.xz/path/to/repo.git/ +</p> +</li> +<li> +<p> +ssh://host.xz/~user/path/to/repo.git/ +</p> +</li> +<li> +<p> +ssh://host.xz/~/path/to/repo.git +</p> +</li> +</ul> +</div></div> +<p>SSH Is the default transport protocol and also supports an +scp-like syntax. Both syntaxes support username expansion, +as does the native git protocol. The following three are +identical to the last three above, respectively:</p> +<div class="exampleblock"> +<div class="exampleblock-content"> +<ul> +<li> +<p> +host.xz:/path/to/repo.git/ +</p> +</li> +<li> +<p> +host.xz:~user/path/to/repo.git/ +</p> +</li> +<li> +<p> +host.xz:path/to/repo.git +</p> +</li> +</ul> +</div></div> +<p>To sync with a local directory, use:</p> +<div class="exampleblock"> +<div class="exampleblock-content"> +<ul> +<li> +<p> +/path/to/repo.git/ +</p> +</li> +</ul> +</div></div> +<p>In addition to the above, as a short-hand, the name of a +file in <tt>$GIT_DIR/remotes</tt> directory can be given; the +named file should be in the following format:</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>URL: one of the above URL format +Push: <refspec> +Pull: <refspec></tt></pre> +</div></div> +<p>When such a short-hand is specified in place of +<repository> without <refspec> parameters on the command +line, <refspec> specified on <tt>Push:</tt> lines or <tt>Pull:</tt> +lines are used for <tt>git-push</tt> and <tt>git-fetch</tt>/<tt>git-pull</tt>, +respectively. Multiple <tt>Push:</tt> and and <tt>Pull:</tt> lines may +be specified for additional branch mappings.</p> +<p>The name of a file in <tt>$GIT_DIR/branches</tt> directory can be +specified as an older notation short-hand; the named +file should contain a single line, a URL in one of the +above formats, optionally followed by a hash <tt>#</tt> and the +name of remote head (URL fragment notation). +<tt>$GIT_DIR/branches/<remote></tt> file that stores a <url> +without the fragment is equivalent to have this in the +corresponding file in the <tt>$GIT_DIR/remotes/</tt> directory.</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>URL: <url> +Pull: refs/heads/master:<remote></tt></pre> +</div></div> +<p>while having <tt><url>#<head></tt> is equivalent to</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>URL: <url> +Pull: refs/heads/<head>:<remote></tt></pre> +</div></div> +</dd> +<dt> +<refspec> +</dt> +<dd> +<p> + The canonical format of a <refspec> parameter is + <tt>+?<src>:<dst></tt>; that is, an optional plus <tt>+</tt>, followed + by the source ref, followed by a colon <tt>:</tt>, followed by + the destination ref. +</p> +<p>When used in <tt>git-push</tt>, the <src> side can be an +arbitrary "SHA1 expression" that can be used as an +argument to <tt>git-cat-file -t</tt>. E.g. <tt>master~4</tt> (push +four parents before the current master head).</p> +<p>For <tt>git-push</tt>, the local ref that matches <src> is used +to fast forward the remote ref that matches <dst>. If +the optional plus <tt>+</tt> is used, the remote ref is updated +even if it does not result in a fast forward update.</p> +<p>For <tt>git-fetch</tt> and <tt>git-pull</tt>, the remote ref that matches <src> +is fetched, and if <dst> is not empty string, the local +ref that matches it is fast forwarded using <src>. +Again, if the optional plus <tt>+</tt> is used, the local ref +is updated even if it does not result in a fast forward +update.</p> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">If the remote branch from which you want to pull is +modified in non-linear ways such as being rewound and +rebased frequently, then a pull will attempt a merge with +an older version of itself, likely conflict, and fail. +It is under these conditions that you would want to use +the <tt>+</tt> sign to indicate non-fast-forward updates will +be needed. There is currently no easy way to determine +or declare that a branch will be made available in a +repository with this behavior; the pulling user simply +must know this is the expected usage pattern for a branch.</td> +</tr></table> +</div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">You never do your own development on branches that appear +on the right hand side of a <refspec> colon on <tt>Pull:</tt> lines; +they are to be updated by <tt>git-fetch</tt>. If you intend to do +development derived from a remote branch <tt>B</tt>, have a <tt>Pull:</tt> +line to track it (i.e. <tt>Pull: B:remote-B</tt>), and have a separate +branch <tt>my-B</tt> to do your development on top of it. The latter +is created by <tt>git branch my-B remote-B</tt> (or its equivalent <tt>git +checkout -b my-B remote-B</tt>). Run <tt>git fetch</tt> to keep track of +the progress of the remote side, and when you see something new +on the remote branch, merge it into your development branch with +<tt>git pull . remote-B</tt>, while you are on <tt>my-B</tt> branch. +The common <tt>Pull: master:origin</tt> mapping of a remote <tt>master</tt> +branch to a local <tt>origin</tt> branch, which is then merged to a +local development branch, again typically named <tt>master</tt>, is made +when you run <tt>git clone</tt> for you to follow this pattern.</td> +</tr></table> +</div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">There is a difference between listing multiple <refspec> +directly on <tt>git-pull</tt> command line and having multiple +<tt>Pull:</tt> <refspec> lines for a <repository> and running +<tt>git-pull</tt> command without any explicit <refspec> parameters. +<refspec> listed explicitly on the command line are always +merged into the current branch after fetching. In other words, +if you list more than one remote refs, you would be making +an Octopus. While <tt>git-pull</tt> run without any explicit <refspec> +parameter takes default <refspec>s from <tt>Pull:</tt> lines, it +merges only the first <refspec> found into the current branch, +after fetching all the remote refs. This is because making an +Octopus from remote refs is rarely done, while keeping track +of multiple remote heads in one-go by fetching more than one +is often useful.</td> +</tr></table> +</div> +<p>Some short-cut notations are also supported.</p> +<ul> +<li> +<p> +For backward compatibility, <tt>tag</tt> is almost ignored; + it just makes the following parameter <tag> to mean a + refspec <tt>refs/tags/<tag>:refs/tags/<tag></tt>. +</p> +</li> +<li> +<p> +A parameter <ref> without a colon is equivalent to + <ref>: when pulling/fetching, and <ref><tt>:</tt><ref> when + pushing. That is, do not store it locally if + fetching, and update the same name if pushing. +</p> +</li> +</ul> +</dd> +<dt> +--all +</dt> +<dd> +<p> + Instead of naming each ref to push, specifies all refs + to be pushed. +</p> +</dd> +<dt> +-f, --force +</dt> +<dd> +<p> + Usually, the command refuses to update a local ref that is + not an ancestor of the remote ref used to overwrite it. + This flag disables the check. What this means is that the + local repository can lose commits; use it with care. +</p> +</dd> +</dl> +</div> +<h2>Author</h2> +<div class="sectionbody"> +<p>Written by Junio C Hamano <junkio@cox.net></p> +</div> +<h2>Documentation</h2> +<div class="sectionbody"> +<p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p> +</div> +<h2>GIT</h2> +<div class="sectionbody"> +<p>Part of the <a href="git.html">git(7)</a> suite</p> +</div> +<div id="footer"> +<div id="footer-text"> +Last updated 27-Dec-2005 00:16:30 PDT +</div> +</div> +</body> +</html>